// pages/dis-discuss/dis-discuss.js
import { upStar } from '../../utils/api'
import { deStar } from '../../utils/api'
import {getDis} from '../../utils/api'
import {getDis2} from '../../utils/api'
import {getUser} from '../../utils/api'
import {upDis} from '../../utils/api'
Page({

    /**
     * 页面的初始数据
     */
    data: {
    /*定义一些数据*/
    focus: false, //输入框是否聚焦
    placeholder: '说点什么 . . . .', //底部输入框占字符
    // placeholder2: '说点什么，让ta也认识看笔记的你', //顶部输入框占字符
    value: null, //顶部输入框内容
    comment_text: null, //底部评论框内容
 
   
    comment_list2:[],
    comment_list:[],
    /*
     *以下初始化数据是用户点击任意一条评论或回复时需要设置的数据
     *然后将设置好的数据传递给评论时新创建的评论数据对象
    */
   now_reply_name: 'null', //当前点击的评论或回复评论的用户昵称
   now_reply_type: 0, //当前回复类型 默认为0 1为回复评论 2为回复回复
   now_parent_id: 0, //当前点击的评论或回复评论的所属评论id
   now_reply: 0, //当前点击的评论或回复评论的id
    //模拟用户信息

    // userinfo: {
    //   nickName: '马飞', //用户昵称
    //   avatarUrl: '/images/assemblyNumber/discoveryDetails/per5.png' //用户头像
    // },

    userinfo:{},
    list1_last_id:0,
    list2_last_id:0,
        id:'',//评论所属id
        discuss:[],//本动态所属评论
        item:[],//动态
        isLoading:false,
        indicatorDots: true,  //是否显示面板指示点
        autoplay: true,      //是否自动切换
        interval: 3000,       //自动切换时间间隔
        duration: 1000,       //滑动动画时长
        inputShowed: false,
        inputVal: "",
        
      favor_img2: "../../public/discovery-img/good.png",
      favor_img: "../../public/discovery-img/good-fill.png",
    },

    //局部刷新
    bindDownLoad:function(){
        setTimeout(()=>{
            this.setData({
                isLoading:false
            })
            // 下拉刷新触发的事件
            },2000)
    },

    //点赞模块
    praiseThis: function (e) {
      let index = e.currentTarget.dataset.index

      var that = this;
      for(var i=0;i<that.data.item.length;i++){
        if(index == that.data.item[i].id){
          var num = that.data.item[i].like_nums
          let str = "item["+i+"].is_good"
          let str2 = "item["+i+"].like_nums"
          if(that.data.item[i].is_good ===0){  //本用户没有点赞的情况
            ++num
            that.setData({
              [str]:1,
              [str2]:num
            })
            upStar({id:index,openid:wx.getStorageSync('openid')}).then(res=>{
              console.log(res);
            })
          }else{                                //本用户已经点赞则取消点赞
            --num
            that.setData({
              [str]:0,
              [str2]:num

            })
            deStar({id:index,openid:wx.getStorageSync('openid')}).then(res=>{
              console.log(res);
            })
          }

        }
      }
    },

    //获取评论
    getdiscuss:function(){
      getDis({id:this.data.id}).then(({res,lastcomment_id})=>{
        this.setData({
          comment_list:res,
          list1_last_id:lastcomment_id
        })
      })
    },

    //获取回复评论的评论
    getdiscuss2:function(){
      getDis2({id:this.data.id}).then(({res,lastcomment_id})=>{
        this.setData({
          comment_list2:res,
          list2_last_id:lastcomment_id
        })
      })
    },

    //获取本用户信息
    getUserinfo:function(){
      let openid = wx.getStorageSync('openid')
      getUser({openid:openid}).then((res)=>{
        this.setData({
          userinfo:res.username[0]
        })
        
      })
    },
    //存储评论
    upDiscuss:function(e){
      console.log(e);
      upDis(e).then(res=>{
        console.log(res);
      })
    },


//点击用户评论或回复时触发
replyComment(e) {
  console.log(e);
  var cid = e.currentTarget.dataset.cid; //当前点击的评论id
  var name = e.currentTarget.dataset.name; //当前点击的评论昵称
  var pid = e.currentTarget.dataset.pid; //当前点击的评论所属评论id
  var type = e.currentTarget.dataset.type; //当前回复类型
  var text = e.currentTarget.dataset.text
  this.setData({
      focus: true, //输入框获取焦点
      placeholder: '回复' + name + '：'+text, //更改底部输入框占字符
      now_reply: cid, //当前点击的评论或回复评论id
      now_reply_name: name, //当前点击的评论或回复评论的用户名
      now_parent_id: pid, //当前点击的评论或回复评论所属id
      now_reply_type: type, //获取类型(1回复评论/2回复-回复评论)
  })
},

//获取输入框内容
getCommentText(e) {
  var val = e.detail.value;
  this.setData({
    comment_text: val
  })
},

//点击提交
submit(){
  let e = this.data.comment_text
  console.log(e);
  this.confirm(e)
},

//底部输入框提交内容时触发
confirm(e){
  //获取输入框输入的内容
  var comment_text =''
  if(e.detail){

    comment_text = e.detail.value;
  }else{
    comment_text = e
  }
  //判断用户是否输入内容为空
  if (comment_text == '') {
    //用户评论输入内容为空时弹出
    wx.showToast({
     title: '请输入内容', //提示内容
     icon: 'none' //提示图标
   })
  } else {
      var date = new Date(); //创建时间对象
      var year = date.getFullYear(); //获取年      
      var month = date.getMonth() + 1; //获取月      
      var day = date.getDate(); //获取日      
      var hour = date.getHours(); //获取时      
      var minute = date.getMinutes(); //获取分      
      var second = date.getSeconds(); //获取秒      
      var time = `${year}年${month}月${day}日${hour}时${minute}分${second}秒`; //当前时间
      var comment_list = this.data.comment_list; //获评论数据
      var comment_list2 = this.data.comment_list2; //获取回复数据
      var comment_list_length = comment_list.length; //获取当前评论数组的长度
      var last_id = comment_list[0]? comment_list[comment_list_length - 1].comment_id :this.data.list1_last_id; //获取最后一个评论的id
      var comment_list2_length = comment_list2.length; //获取回复数组的长度
      var last_id2 = comment_list2[0]? comment_list2[comment_list2_length - 1].comment_id : this.data.list2_last_id; //获取最后回复的id
      // var new_id = last_id > last_id2 ? last_id + 1 : last_id2 + 1; //当前将要发表的评论的id
      var userinfo = this.data.userinfo; //获取当前的用户信息      
      var comment_user_name = userinfo.nickname //用户昵称      
      var comment_user_avatar = userinfo.avatar //用户头像
      var reply_name = 'null'; //回复评论用户的昵称
      var parent_id = 0; //评论所属哪个评论的id
      var reply_id = this.data.now_reply; //回复谁的评论id
      //通过回复谁的评论id判断现在是评论还是回复
      if(reply_id != 0) {
  //现在是回复
  var reply_type = this.data.now_reply_type; //回复类型
  //通过回复类型判断是回复评论还是回复回复
  if (reply_type == 1) {
    //回复评论
    parent_id = this.data.now_reply; //回复评论所属评论id
    reply_name = this.data.now_reply_name; //回复评论用户昵称
  } else {
    //回复回复
    parent_id = this.data.now_parent_id; //回复评论所属评论id
    reply_name = this.data.now_reply_name; //回复评论用户昵称
  }
      } else {
  //现在是评论
}
var comment_detail = {} //评论/回复对象
comment_detail.comment_pr_id=this.data.id  //发出的所有评论所属动态的id
comment_detail.comment_user_openid=wx.getStorageSync('openid') //发出评论的用户的openid
// comment_detail.comment_id = new_id; //评论Id      
comment_detail.comment_user_name = comment_user_name; //用户昵称      
comment_detail.comment_user_avatar = comment_user_avatar; //用户头像      
comment_detail.comment_text = comment_text; //评论内容      
comment_detail.comment_time = time; //评论时间      
comment_detail.reply_id = reply_id; //回复谁的评论的id      
comment_detail.parent_id = parent_id; //评论所属哪个评论id      
comment_detail.reply_name = reply_name; //回复评论人的昵称
//判断parent_id是否为0 为0就是评论 不为0就是回复
if(comment_detail.parent_id > 0) {
  //回复
  let newcomment_list2 = this.data.comment_list2
  comment_detail.comment_id = last_id2+1; //评论Id      
  this.upDiscuss(comment_detail)
  newcomment_list2.unshift(comment_detail);
  this.setData({
    comment_list2:newcomment_list2
  })
  console.log(this.data.comment_list2);

} else {
  //评论
  let newcomment_list = this.data.comment_list

  comment_detail.comment_id = last_id+1; //评论Id      
  this.upDiscuss(comment_detail)
  newcomment_list.unshift(comment_detail);
  this.setData({
    comment_list:newcomment_list
  })
  console.log(this.data.comment_list);
}
//动态渲染
this.setData({
  //发表评论后将以下数据初始化 为下次发表评论做准备
  comment_text: null, //评论内容        
  now_reply: 0, //当前点击的评论id        
  now_reply_name: 'null', //当前点击的评论的用户昵称        
  now_reply_type: 0, //评论类型        
  now_parent_id: 0, //当前点击的评论所属哪个评论id        
  placeholder: "说点什么...", //输入框占字符
  //将加入新数据的数组渲染到页面        
  comment_list, //评论列表        
  comment_list2 //回复列表
})
  }
},

//下面的方法可以绑定在输入框的bindblur属性上	
blur(e) {
  const text = e.detail.value.trim();
  if( text == ''){
    this.setData({
      now_reply: 0, //当前点击的评论或回复评论的id        
      now_reply_name:'null', //当前点击的评论或回复评论的用户昵称        
      now_reply_type:0, //当前回复类型        
      now_parent_id:0, //当前点击的评论或回复评论的所属评论id        
      placeholder: "说点什么 . . . .", //占字符        
      focus:false //输入框获取焦点
    })
  }
},


    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        let item = JSON.parse(decodeURIComponent(options.item))
        let tik = this.data.item
        tik.push(item)
        this.setData({
            id:item.id,
            item:tik
        })
    },
      //点赞功能
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
      this.getUserinfo()
      this.getdiscuss()
      this.getdiscuss2()
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})